package com.wuji1626.spark.rdd.transform

import org.apache.spark.{SparkConf, SparkContext}

object RDD_Transform_Map_LogScenario {
  def main(args: Array[String]): Unit = {
    // Step1: 准备环境
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("Operator")
    val sc = new SparkContext(sparkConf)

    // Step2: 算子 map
    val rdd = sc.textFile("datas/apache.log")
    // 将 1, 2, 3, 4 转换成 2,4,6,8

    // val mapRDD = rdd.map((num:Int)=>{num * 2})
    // 函数只有一行，大括号{}可以省略
    // val mapRDD = rdd.map((num:Int)=>num * 2)
    // 如果类型可以推断，参数类型可以省略
    // val mapRDD = rdd.map((num)=>num * 2)
    // 如果只用一个参数，括号可以省略
    // val mapRDD = rdd.map(num=>num * 2)
    // 如果参数支出现一次，且顺序出现则参数名可以换成下划线 _，=> 也可以省略
    val mapRDD = rdd.map(
      line =>{
        val datas = line.split(" ")
        datas(10)
      }
    )
    mapRDD.collect().foreach(println)

    // Step3: 关闭环境
    sc.stop()
  }
}
